package com.hxzy.shop.order.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hxzy.shop.entity.OrderInnerDrug;
import com.hxzy.shop.entity.OrderTable;
import com.hxzy.shop.entity.StatisticsInnerDrug;
import com.hxzy.shop.order.dto.req.*;
import com.hxzy.shop.order.dto.resp.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.List;

/**
 * @Author rlj
 * @Date 2021/8/9 10:45
 * @Version 1.0
 */
@Mapper
public interface OrderTableMapper extends BaseMapper<OrderTable> {




    /**
     * 订单列表
     *
     * @param orderManageReq 订单请求体
     * @return 订单分页
     */
    List<OrderManageListResp> getOrderManageList(OrderManageReq orderManageReq);

    /**
     * 小程序订单
     *
     * @param orderListReq 请求体
     * @return 订单列表
     */
//    List<OrderListResp> getAppletOrderTable(OrderListReq orderListReq);

    /**
     * 获得订单详情基本订货单信息
     *
     * @param orderDetailReq 请求体
     * @return 订单信息
     */
    OrderDetailResp getOrderDetail(OrderDetailReq orderDetailReq);

//    /**
//     * 获得所有的计数
//     *
//     * @param orderCountsReq 请求体
//     * @return 计算结果
//     */
//    OrderCountsResp orderCountS(OrderCountsReq orderCountsReq);

    /**
     * 订单总数量
     *
     * @param storeId
     * @return
     */
    Integer orderCountTotal(@Param("storeId") Long storeId);

    /**
     * 待付款订单数量
     *
     * @param storeId
     * @return
     */
    Integer orderCountOnBehalf(@Param("storeId") Long storeId);

    /**
     * 代发货订单数量
     *
     * @param storeId
     * @return
     */
    Integer orderCountConsignments(@Param("storeId") Long storeId);

    /**
     * 带备货订单数量
     *
     * @param storeId
     * @return
     */
    Integer orderCountPrepareGoodsBehalf(@Param("storeId") Long storeId);

    /**
     * 待收货订单数量
     *
     * @param storeId
     * @return
     */
    Integer orderCountCollectGoodsBehalf(@Param("storeId") Long storeId);

    /**
     * 待自提订单数量
     *
     * @param storeId
     * @return
     */
    Integer orderCountToBeMentioned(@Param("storeId") Long storeId);

    /**
     * 已完成订单数量
     *
     * @param storeId
     * @return
     */
    Integer orderCountCompleted(@Param("storeId") Long storeId);

    /**
     * 已经关闭订单数量
     * @param storeId
     * @return
     */
    Integer orderCountClosed(@Param("storeId") Long storeId);

//    /**
//     * 获得指定订单信息
//     *
//     * @param id 订单id
//     * @return 订单信息
//     */
//    List<OrderManageListResp> getExcelOrder(@Param("id") List<Long> id);
//
//    /**
//     * 售后订单服务列表
//     *
//     * @param afterSaleRep 请求体
//     * @return 服务列表
//     */
//    List<AfterSaleResp> afterSalesOrderList(AfterSaleRep afterSaleRep);
//
//    /**
//     * 获得退款的总数
//     *
//     * @param orderCountsReq 请求体
//     * @return 总数
//     */
//    AfterSaleCountResp getAfterSaleCount(OrderCountsReq orderCountsReq);
//
//    /**
//     * 所有售后单数量
//     * @param storeId
//     * @return
//     */
//    Integer afterSaleCountTotal(@Param("storeId") Long storeId);
//
//    /**
//     * 退货退款数量
//     * @param storeId
//     * @return
//     */
//    Integer afterSaleCountReturnRefund(@Param("storeId") Long storeId);
//
//    /**
//     * 退款数量
//     * @param storeId
//     * @return
//     */
//    Integer afterSaleCountRefundOnly(@Param("storeId") Long storeId);
//
//    /**
//     * 退款详细
//     *
//     * @param refundOrderDetailReq 请求体
//     * @return 退款信息
//     */
//    List<RefundOrderDetailResp> getRefundOrderDetail(RefundOrderDetailReq refundOrderDetailReq);
//
//    /**
//     * 小程序计数
//     *
//     * @param orderCountReq 请求体
//     * @return 订单数量
//     */
//    AppletOrderCountResp appletOrderCount(AppletOrderCountReq orderCountReq);
//
//    /**
//     * 获得指定的订单
//     *
//     * @param id 订单id
//     * @return 订单
//     */
//    List<AfterSaleResp> salesOrderExport(@Param("id") List<Long> id);
//
//    /**
//     * 小程序订单详情
//     *
//     * @param id id
//     * @return 小程序订单详情
//     */
//    AppletOrderDetailResp getAppletOrderDetail(@Param("id") Long id);
//
//    /**
//     * 首页实时数据
//     *
//     * @param realTimeDataReq 请求体
//     * @return 数据
//     */
//    RealTimeDataResp getRealTimeData(RealTimeDataReq realTimeDataReq);
//
//    /**
//     * 流量趋势-浏览量
//     *
//     * @param visitsRep 请求体
//     * @return 浏览量
//     */
//    List<VisitsResp> visits(VisitsRep visitsRep);
//
//    /**
//     * 新仿客流量趋势
//     *
//     * @param visitsRep 请求体
//     * @return 流量趋势
//     */
//    List<VisitsResp> newVisits(VisitsRep visitsRep);
//
//    /**
//     * 热门商品
//     *
//     * @param visitTopFiveReq 请求体
//     * @return 热门的商品
//     */
//    List<StatisticsInnerDrug> visitTopFive(VisitTopFiveReq visitTopFiveReq);
//
//    /**
//     * 获得指定药品的支付数
//     *
//     * @param drugId 药品id
//     * @return 支付数
//     */
//    Integer PaySaleCount(Long drugId);
//
//    /**
//     * 获得热门支付
//     *
//     * @param visitTopFiveReq 请求体
//     * @return 热门支付
//     */
//    List<OrderInnerDrug> visitTopPay(VisitTopFiveReq visitTopFiveReq);
//
//
//    /**
//     * 对账管理
//     *
//     * @param reconciliationAdminReq 请求体
//     * @return 对账数据
//     */
//    List<ReconciliationAdminResp> getReconciliationAdmin(ReconciliationAdminReq reconciliationAdminReq);
//
//    /**
//     * 查询用户消费总额 下单就算
//     * **/
//
//    BigDecimal getMemberPayMoney(@Param("memberId")Long memberId);

}
